package com.alax.interfaces.mapper;

import java.util.List;
import com.alax.interfaces.domain.UserApiKey;

/**
 * 用户API密钥Mapper接口
 * 
 * @author alax
 * @date 2025-04-10
 */
public interface UserApiKeyMapper 
{
    /**
     * 查询用户API密钥
     * 
     * @param id 用户API密钥主键
     * @return 用户API密钥
     */
    public UserApiKey selectUserApiKeyById(Long id);

    /**
     * 查询用户API密钥列表
     * 
     * @param userApiKey 用户API密钥
     * @return 用户API密钥集合
     */
    public List<UserApiKey> selectUserApiKeyList(UserApiKey userApiKey);
    
    /**
     * 查询用户API密钥列表 - 只查询需要的字段
     * 
     * @param userId 用户ID
     * @return 用户API密钥集合
     */
    public List<UserApiKey> selectUserApiKeysOptimized(Long userId);

    /**
     * 新增用户API密钥
     * 
     * @param userApiKey 用户API密钥
     * @return 结果
     */
    public int insertUserApiKey(UserApiKey userApiKey);

    /**
     * 修改用户API密钥
     * 
     * @param userApiKey 用户API密钥
     * @return 结果
     */
    public int updateUserApiKey(UserApiKey userApiKey);

    /**
     * 删除用户API密钥
     * 
     * @param id 用户API密钥主键
     * @return 结果
     */
    public int deleteUserApiKeyById(Long id);

    /**
     * 批量删除用户API密钥
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteUserApiKeyByIds(Long[] ids);
}
